home *** CD-ROM | disk | FTP | other *** search
/ Tour America Door-to-Door American Adventure / Tour America - Door-to-Door American Adventure.iso / aomc.mst < prev    next >
Text File  |  1996-08-21  |  30KB  |  842 lines

  1. '****************************************************************************
  2. '**                  AOMC Install Script - Doc Apps                        **
  3. '****************************************************************************
  4. DIM Arg$(4)                  '' Set maximum command line arguments to 4
  5. GOSUB CmdLine                '' MUST be done BEFORE including 'setupapi.inc'
  6. IF Arg$(3) = "NOAUDIO" THEN  '' Check user argument 1
  7.   NOAUDIO% = 1
  8.   GOTO INCs
  9. END IF
  10. IF Arg$(4) = "NOAUDIO" THEN  '' Check user argument 2
  11.   NOAUDIO% = 1
  12.   GOTO INCs
  13. END IF
  14. '$DEFINE AUDIO_ENABLED       '' User hasn't turned audio off, so play it
  15. INCs:
  16. '$INCLUDE 'setupapi.inc'
  17. '$INCLUDE 'msdetect.inc'
  18. '$INCLUDE 'aomc.inc'
  19. '$IFDEF AUDIO_ENABLED        '' User has turned audio off, so don't load func
  20.   DECLARE FUNCTION sndPlaySound LIB "MMSYSTEM.DLL" (AudFilename$, Flags%) AS INTEGER
  21. '$ENDIF ''AUDIO_ENABLED
  22.  
  23. '****************************************************************************
  24. Group$              = "RomTech Apps"           '' Group name for Shell
  25. AppTitle$           = "American Vista II"     '' Application Title for Shell
  26. AppExeName$         = "\AV2.EXE"           '' Application Executable Name for Shell
  27. AppDir$             = "\AV2EXE"            '' Application directory on CD-ROM
  28. ProgRoot$           = "\AV2"               '' Application default directory on HD
  29. RT$                 = "\RUNTIME\"          '' Directory on CD-ROM where VfW Runtime resides
  30. MSOBitmap$          = "AV2.BMP"            '' MS Office bitmap file for AppTitle$
  31. InfoEXE$            = "WRITE.EXE"          '' Application to handle InfoFile$
  32. InfoFile$           = "\README.WRI"        '' Information filename - must be compatible with InfoExe$
  33. OtherAppsTitle$     = "Other RomTech Applications"  '' Title for Other Apps Help File
  34. OtherAppsFile$      = "\Others.hlp"         '' Other Apps Help Filename
  35. WantedDiskSize&     = 2048000              '' Disk space needed for minimum installation
  36. FullWantedDiskSize& = 40960000             '' Disk space needed for full installation
  37. '****************************************************************************
  38.  
  39.  
  40. '****************************************************************************
  41. '**                          Beginning of script                           **
  42. '****************************************************************************
  43. INIT:
  44.  
  45.     WIN32ENABLED% = 0
  46.     VfWFailed% = 0
  47.  
  48.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  49.     SrcDrive$ = MID$(SrcDir$,1,1) + ":"
  50.     WinDir$ = GetWindowsDir()
  51.     WinSysDir$ = GetWindowsSysDir()
  52.     WinSys32Dir$ = WinDir$ + "system32"
  53.  
  54.     OpenLogFile WinDir$ + "AOMC.LOG", 0
  55.     WriteToLogFile ""
  56.     WriteToLogFile "                          AOMC Install LOG file"
  57.     WriteToLogFile ""
  58.     WriteToLogFile "Windows directory is " + WinDir$
  59.     WriteToLogFile ""
  60.     WriteToLogFile "Group      = " + Group$
  61.     WriteToLogFile "AppTitle   = " + AppTitle$
  62.     WriteToLogFile "AppDir     = " + AppDir$
  63.     WriteToLogFile "AppExeName = " + AppExeName$
  64.     WriteToLogFile "SrcDrive   = " + SrcDrive$
  65.     WriteToLogFile ""
  66.     IF NOAUDIO% = 0 THEN
  67.         WriteToLogFile "Audio Enabled."
  68.      ELSE
  69.         WriteToLogFile "Audio Disabled by user."
  70.     END IF
  71.     WriteToLogFile ""
  72.  
  73.     CUIDLL$    = "mscuistf.dll"          ''AOMC user interface dll
  74.     HELPPROC$  = "FHelpDlgProc"          ''Help dialog procedure
  75.  
  76.     MajorVer% = GetWindowsMajorVersion()
  77.     MinorVer% = GetWindowsMinorVersion()
  78.  
  79.     IF  MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  80.         i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  81.         WriteToLogFile "ERROR: Microsoft Windows version was " + str$(MajorVer%) + "." + str$(MinorVer%)
  82.         CloseLogFile
  83.       END
  84.     END IF
  85.  
  86.     ' Use Wowexec to determine version of NT.  3.1 did not stamp wowexec and wow returns 3.1 as version
  87.     IF OnWindowsNT() THEN
  88.       OnNT$ = "TRUE"
  89.       WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe")
  90.       IF WowVersion$ = "" THEN
  91.          i% = DoMsgBox("Video for Windows does not run on Windows NT 3.1.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  92.          WriteToLogFile "ERROR: Microsoft Windows NT running."
  93.          CloseLogFile
  94.          END
  95.       END IF
  96.     END IF
  97.  
  98.     SetBitmap CUIDLL$, LOGO
  99.     SetTitle AppTitle$ + " - Installation Program"
  100.  
  101.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  102.     IF szInf$ = "" THEN
  103.             szInf$ = GetSymbolValue("STF_CWDDIR") + "AOMC.INF"
  104.     END IF
  105.     ReadInfFile szInf$
  106.  
  107.     WinDrive$ = MID$(WinDir$, 1, 1)
  108.     DEST$ = WinDrive$ + ":" + ProgRoot$
  109.  
  110. '    ChkSpace
  111. '    ChkDrive
  112. '    MSOffice
  113.  
  114. '**
  115. '** Purpose:
  116. '**     Show and process WELCOME dialog
  117. '****************************************************************************
  118. WELCOME:
  119.     IF NOAUDIO% = 0 THEN
  120.         r% = PlayWAV(SrcDrive$ + "\welcome.wav")
  121.     END IF
  122.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  123.     IF sz$ = "CONTINUE" THEN
  124.         UIPop 1
  125.      ELSE
  126.         UIPopAll
  127.         r% = PlayWAV("")
  128.         GOSUB ASKQUIT
  129.         GOTO WELCOME
  130.     END IF
  131.     r% = PlayWAV("")
  132.  
  133.     'i% = DoMsgBox(DEST$,"",MB_TASKMODAL+MB_OK)
  134.     'Run (SrcDir$ + AppDir$ + AppExeName$)
  135.  
  136. OpProc% = 1
  137. GOTO OPTION1
  138.  
  139. '**
  140. '** Purpose:
  141. '**     Show and process OPTIONS2 dialog
  142. '****************************************************************************
  143. OPTION:
  144.     IF NOAUDIO% = 0 THEN
  145.         r% = PlayWAV(SrcDrive$ + "\option.wav")
  146.     END IF
  147.     SetSymbolValue "RadioDefault", OPTCUR$
  148. OPTL1:
  149.     sz$ = UIStartDlg(CUIDLL$, OPTIONS2, "FRadioDlgProc", APPHELP2, HELPPROC$)
  150.     OPTCUR$ = GetSymbolValue("ButtonChecked")
  151.     IF sz$ = "CONTINUE" THEN
  152.         r% = PlayWAV("")
  153.         UIPop(1)
  154.      ELSEIF sz$ = "REACTIVATE" THEN
  155.         GOTO OPTL1
  156.      ELSE
  157.         UIPopAll
  158.         r% = PlayWAV("")
  159.         GOSUB ASKQUIT
  160.         GOTO OPTL1
  161.     END IF
  162.  
  163. '   MessageBox to show option chosen
  164. '    i% = DoMsgBox(OPTCUR$,"Option selected",MB_TASKMODAL+MB_OK)
  165.  
  166.     IF OPTCUR$ = "1" THEN
  167.         OpProc% = 1
  168.         WriteToLogFile "Option 1 chosen."
  169.         GOTO OPTION1
  170.       ELSEIF OPTCUR$ = "2" THEN
  171.         OpProc% = 2
  172.         WriteToLogFile "Option 2 chosen."
  173.         ChkDrive
  174.         GOTO OPTION2
  175.      ELSE
  176.         OpProc% = 0
  177.         GOSUB ASKQUIT
  178.     END IF
  179.  
  180. '**
  181. '** Purpose:
  182. '**     Process Option 1 from OPTIONS2 dialog.
  183. '****************************************************************************
  184. OPTION1:
  185.  
  186.     sm% = SetSilentMode(1)
  187.     ClearCopyList
  188.     AddSectionFilesToCopyList "AOMC", SrcDir$, WinDir$
  189.     CopyFilesInCopyList
  190.     sm% = SetSilentMode(0)
  191.  
  192.     Install
  193.  
  194.     GOTO VfW
  195.  
  196. '**
  197. '** Purpose:
  198. '**     Process Option 2 from OPTIONS2 dialog.
  199. '****************************************************************************
  200. OPTION2:
  201.     SetSymbolValue "EditTextIn", DEST$
  202.     SetSymbolValue "EditFocus", "END"
  203.     olddest$ = DEST$
  204. GETPATHL1:
  205.     sz$ = UIStartDlg(CUIDLL$, DESTPATH2, "FEditDlgProc", APPHELP3, HELPPROC$)
  206.  
  207.     IF sz$ = "CONTINUE" THEN
  208.         DEST$ = GetSymbolValue("EditTextOut")
  209.         ''Validate new path.
  210.         IF IsDirWritable(DEST$) = 0 THEN
  211.             UIPop 1
  212.             GOSUB BADPATH
  213.             DEST$ = olddest$
  214.             GOTO GETPATHL1
  215.         END IF
  216.         ''Check drive space
  217.         CheckedDrive$ = MID$(DEST$,1,1)
  218.         IF ChkSpace(CheckedDrive$, FullWantedDiskSize&) = 1 THEN
  219.             UIPop 1
  220.             GOSUB FullTooBig
  221.             DEST$ = olddest$
  222.             GOTO GETPATHL1
  223.         END IF
  224.         UIPop 1
  225.         olddest$ = ""
  226.      ELSEIF sz$ = "REACTIVATE" THEN
  227.         GOTO GETPATHL1
  228.      ELSEIF sz$ = "EXIT" THEN
  229.         UIPop 1
  230.         GOSUB ASKQUIT
  231.         GOTO GETPATHL1
  232.      ELSE
  233.         UIPop 1
  234.         DEST$ = olddest$
  235.         GOTO OPTION
  236.     END IF
  237.  
  238. OPT2PROC:
  239.     CreateDir DEST$, cmoNone
  240.     CreateDir DEST$ + "\EXE", cmoNone
  241.     CreateDir DEST$ + "\TEXT", cmoNone
  242.     CreateDir DEST$ + "\INTFACE", cmoNone
  243.  
  244.     UIPopAll
  245.  
  246.     ClearCopyList
  247.     AddSectionFilesToCopyList "AOMC", SrcDir$, WinDir$
  248.     AddSectionFilesToCopyList "ProgEXE", SrcDir$, DEST$ + "\EXE"
  249.     AddSectionFilesToCopyList "ProgTEXT", SrcDir$, DEST$ + "\TEXT"
  250.     AddSectionFilesToCopyList "ProgINTFACE", SrcDrive$ + RT$, DEST$ + "\INTFACE"
  251.     CopyFilesInCopyList
  252.  
  253.     fHandle% = FileOp(0, DEST$ + "\EXE\SAVED.ENV", 0)
  254. '   i% = DoMsgBox(str$(fHandle%),"Open SAVED.ENV",MB_TASKMODAL+MB_OK)
  255.     ret% = FileOp(1, SrcDrive$ + "\", fHandle%)
  256.     ret% = FileOp(1, DEST$ + "\EXE\", fHandle%)
  257.     ret% = FileOp(1, DEST$ + "\TEXT\", fHandle%)
  258.     ret% = FileOp(1, DEST$ + "\INTFACE\", fHandle%)
  259.     ret% = FileOp(1, SrcDrive$ + "\AVI\", fHandle%)
  260.     ret% = FileOp(1, SrcDrive$ + "\DIB\", fHandle%)
  261.     ret% = FileOp(1, SrcDrive$ + "\WAV\", fHandle%)
  262. '   i% = DoMsgBox(str$(ret%),"Return from WRITE",MB_TASKMODAL+MB_OK)
  263.     ret% = FileOp(2, "", fHandle%)
  264. '   i% = DoMsgBox(str$(ret%),"Return from CLOSE",MB_TASKMODAL+MB_OK)
  265.  
  266.     Install
  267.  
  268. '**
  269. '** Purpose:
  270. '**     Check for and optionally install MS Video for Windows 1.1
  271. '****************************************************************************
  272. VfW:
  273.     AVI$ = GetIniKeyString$("WIN.INI", "mci extensions", "avi")
  274.     IF AVI$ = "AVIVideo" THEN
  275.         sz$ = UIStartDlg(CUIDLL$, DO_AVI_YN, "FQuitDlgProc", 0, "")
  276.         IF sz$ = "CONTINUE" THEN
  277.             VfW_ANSWER$ = "Yes"
  278.             WriteToLogFile "Answer to VfW question = " + VfW_ANSWER$
  279.             GOSUB InstallVfW
  280.                UIPopAll
  281.          ELSEIF sz$ = "REACTIVATE" THEN
  282.             GOTO VfW
  283.          ELSEIF sz$ = "EXIT" THEN
  284.             VfW_ANSWER$ = "No"
  285.             WriteToLogFile "Answer to VfW question = " + VfW_ANSWER$
  286.             UIPopAll
  287.         END IF
  288.      ELSE
  289.         VfW_ANSWER$ = "Yes"
  290.         WriteToLogFile "Answer to VfW question = " + VfW_ANSWER$
  291.         GOSUB InstallVfW
  292.     END IF
  293.  
  294. '**
  295. '** Purpose:
  296. '**     Ask if user wishes to view OTHERS.HLP
  297. '****************************************************************************
  298. OTHERS:
  299.     IF NOAUDIO% = 0 THEN
  300.         r% = PlayWAV(SrcDrive$ + "\other.wav")
  301.     END IF
  302.     sz$ = UIStartDlg(CUIDLL$, DO_OTHERS_YN, "FQuitDlgProc", 0, "")
  303.     IF sz$ = "CONTINUE" THEN
  304.         r% = PlayWAV("")
  305.         ChDrive(SrcDrive$)
  306.         ChDir(AppDir$)
  307.         Run (WinDir$ + "winhelp " + SrcDrive$ + AppDir$ + "\others.hlp")
  308.         OTHERS_ANSWER$ = "Yes"
  309.         UIPopAll
  310.      ELSEIF sz$ = "REACTIVATE" THEN
  311.         r% = PlayWAV("")
  312.         GOTO OTHERS
  313.      ELSEIF sz$ = "EXIT" THEN
  314.         r% = PlayWAV("")
  315.         OTHERS_ANSWER$ = "No"
  316.         UIPopAll
  317.     END IF
  318.     WriteToLogFile "Answer to OTHERS question = " + OTHERS_ANSWER$
  319.     WriteToLogFile ""
  320.  
  321. '**
  322. '** Purpose:
  323. '**     Last stuff before quiting
  324. '****************************************************************************
  325. CLEANUP:
  326.     IF OpProc% = 2 THEN
  327.         MSOffice
  328.     END IF
  329.     IF InfoFile$ <> "" THEN
  330. '       i% = DoMsgBox(InfoEXE$ + " " + SrcDrive$ + AppDir$ + InfoFile$,"Info file Run string",MB_TASKMODAL+MB_OK)
  331.         Run(InfoEXE$ + " " + SrcDrive$ + AppDir$ + InfoFile$)
  332.     END IF
  333.  
  334. '**
  335. '** Purpose:
  336. '**     Handle quit messages from SUBs, et al
  337. '****************************************************************************
  338. QUIT:
  339.     ON ERROR GOTO ERRQUIT
  340.  
  341.     IF ERR = 0 THEN
  342.         IF NOAUDIO% = 0 THEN
  343.             r% = PlayWAV(SrcDrive$ + "\success.wav")
  344.         END IF
  345.         dlg% = EXITSUCCESS
  346.         dialog$ = "EXITSUCCESS"
  347.      ELSEIF ERR = STFQUIT THEN
  348.         IF NOAUDIO% = 0 THEN
  349.             r% = PlayWAV(SrcDrive$ + "\ninstall.wav")
  350.         END IF
  351.         dlg% = EXITQUIT
  352.         dialog$ = "EXITQUIT"
  353. '       VfWFailed% = 1
  354.      ELSEIF ERR = STFPROBLEM THEN
  355.         IF NOAUDIO% = 0 THEN
  356.             r% = PlayWAV(SrcDrive$ + "\problem.wav")
  357.         END IF
  358.         dlg% = EXITQUIT
  359.         dialog$ = "EXITQUIT"
  360.         VfWFailed% = 1
  361.      ELSE
  362.         IF NOAUDIO% = 0 THEN
  363.             r% = PlayWAV(SrcDrive$ + "\fatal.wav")
  364.         END IF
  365.         dlg% = EXITFAILURE
  366.         dialog$ = "EXITFAILURE"
  367.         VfWFailed% = 1
  368.     END IF
  369.     WriteToLogFile ""
  370.     WriteToLogFile "ExitDialog = " + dialog$
  371.     WriteToLogFile ""
  372.  
  373. QUITL1:
  374.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  375.     r% = PlayWAV("")
  376.     IF sz$ = "REACTIVATE" THEN
  377.         GOTO QUITL1
  378.     END IF
  379.     UIPopAll
  380.     IF VfW_ANSWER$ = "Yes" THEN
  381.         IF VfWFailed% = 0 THEN
  382.             GOTO RESTART
  383.         END IF
  384.         CloseLogFile
  385.         END
  386.      ELSE
  387.         CloseLogFile
  388.         END
  389.     END IF
  390.  
  391. ERRQUIT:
  392.     IF NOAUDIO% = 0 THEN
  393.         r% = PlayWAV(SrcDrive$ + "\fatal.wav")
  394.     END IF
  395.     i% = DoMsgBox("Install sources were corrupted, call AOMC Tech Support!", "Install Fatal Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  396.     WriteToLogFile "FATAL ERROR: Install sources were corrupted."
  397.     CloseLogFile
  398.   END
  399.  
  400.  
  401. '****************************************************************************
  402. '**                          SUBs and FUNCTIONS                            **
  403. '****************************************************************************
  404.  
  405. '**
  406. '** Purpose:
  407. '**     Show and process ASKQUIT2 dialog
  408. '****************************************************************************
  409. ASKQUIT:
  410.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT2, "FQuitDlgProc", 0, "")
  411.     IF sz$ = "EXIT" THEN
  412.         UIPopAll
  413.         ERROR STFQUIT
  414.     ELSEIF sz$ = "REACTIVATE" THEN
  415.         GOTO ASKQUIT
  416.     ELSE
  417.         UIPop 1
  418.     END IF
  419.   RETURN
  420.  
  421. '**
  422. '** Purpose:
  423. '**     Show BADPATH dialog
  424. '****************************************************************************
  425. BADPATH:
  426.     sz$ = UIStartDlg(CUIDLL$, BADPATH2, "FInfo0DlgProc", 0, "")
  427.     IF sz$ = "REACTIVATE" THEN
  428.         GOTO BADPATH
  429.     END IF
  430.     UIPop 1
  431.   RETURN
  432.  
  433. '**
  434. '** Purpose:
  435. '**     Install VfW 1.1 stuff
  436. '****************************************************************************
  437. InstallVfW:
  438.  
  439. ''Prepare Copy list and check size
  440.  
  441.     ClearCopyList
  442.  
  443. '' Remove DCISVGA file
  444.     AddSectionFilesToCopyList "remove", SrcDrive$ + RT$, WinSysDir$
  445.  
  446. ''  Runtime files (on Windows disk)
  447. ''  Do not install OLE or MPlayer if on next release of NT or Windows
  448.  
  449.     IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN            'These files not necessary on Windows NT
  450.     AddSectionFilesToCopyList "MPlayer", SrcDrive$ + RT$, WinDir$
  451.     AddSectionFilesToCopyList "OLE2", SrcDrive$ + RT$, WinSysDir$
  452.     END IF
  453.     AddSectionFilesToCopyList "VfW Runtime", SrcDrive$ + RT$, WinSysDir$
  454.     AddSectionFilesToCopyList "ACM Drivers", SrcDrive$ + RT$, WinSysDir$
  455.     AddSectionFilesToCopyList "AVICodecs", SrcDrive$ + RT$, WinSysDir$
  456.     IF OnNT$ = "TRUE" THEN
  457.     AddSectionFilesToCopyList "NT MSVideo", SrcDrive$ + RT$, WinSys32Dir$
  458.     ENDIF
  459.  
  460.     'Check windrive diskspace
  461.  
  462.     UIPopAll
  463.     sz$ = UIStartDlg(CUIDLL$, VFWINFO, "FModelessDlgProc", 0, "")
  464.     c% = ShowWaitCursor()
  465.     VfWSizeReq& = GetCopyListCost ("","", "")
  466. '   VfWSizeReq& = VfWSizeReq& + 1
  467. '   i% = DoMsgBox(STR$(VfWSizeReq&), "VfW CopyListCost", MB_OK+MB_TASKMODAL)
  468.     WriteToLogFile "VfW CopyListCost was " + STR$(VfWSizeReq&)
  469.     RestoreCursor c%
  470.        UIPopAll
  471.     IF VfWSizeReq& <> 0 THEN
  472.         GOSUB VfWTooBig
  473. '        ERROR STRQUIT
  474.     END IF
  475.  
  476.     SetRestartDir WinDir$
  477.     CopyFilesInCopyList
  478.     WriteToLogFile "Copied Files in CopyList."
  479.  
  480. ''Updating WIN.INI and SYSTEM.INI
  481. ''Only update SYSTEM.INI  on NT or next version of Windows for other codecs
  482.  
  483. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  484.     IF VflatdPresent() = 0 THEN
  485.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  486.     END IF
  487. END IF
  488.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  489.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  490.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  491.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite
  492.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  493.     I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21")
  494.     IF I% = 0  THEN
  495.        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite
  496.     END IF
  497.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite
  498.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  499.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  500.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  501.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  502.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  503.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  504.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  505.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  506.     WriteToLogFile "Updated INI files."
  507.  
  508. ''Do not register components not installed with Video for Windows on NT or next version of Windows.
  509. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  510.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  511.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  512.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  513.     WriteToLogFile "Reg Database updated."
  514.  
  515. '' Mplayer
  516.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  517.     ShowProgmanGroup  Group$, 1, cmoNone
  518. END IF
  519.  
  520.     Run ("profdisp.exe")
  521.     WriteToLogFile "Profile Display has been run."
  522.     WriteToLogFile ""
  523.  
  524.   RETURN
  525.  
  526.  
  527. '**
  528. '** Purpose:
  529. '**     Builds the copy list and performs all installation operations.
  530. '****************************************************************************
  531. SUB Install STATIC
  532.  
  533.     CWDDir$ = GetSymbolValue("STF_CWDDDIR")
  534.  
  535.     CreateProgmanGroup Group$, "", cmoVital
  536.     ShowProgmanGroup  Group$, 1, cmoNone
  537.     IF OpProc% = 1 THEN
  538. '       i% = DoMsgBox(Group$+", "+AppTitle$+", "+SrcDrive$ + AppDir$ + AppExeName$, "Icon Working Directory - CD", MB_OK+MB_TASKMODAL)
  539.         CreateProgmanItem Group$, AppTitle$, SrcDrive$ + AppDir$ + AppExeName$, "", cmoOverwrite
  540. '       i% = DoMsgBox(Group$+", "+AppTitle$+" ReadMe"+", "+SrcDrive$ + AppDir$ + InfoFile$, "ReadMe...", MB_OK+MB_TASKMODAL)
  541.         CreateProgmanItem Group$, AppTitle$+" ReadMe", SrcDrive$ + AppDir$ + InfoFile$, "", cmoOverwrite
  542. '       i% = DoMsgBox(Group$+", "+OtherAppsTitle$+", "+SrcDrive$ + AppDir$ + AppExeName$, "Others...", MB_OK+MB_TASKMODAL)
  543.         CreateProgmanItem Group$, OtherAppsTitle$, SrcDrive$ + AppDir$ + OtherAppsFile$, "", cmoOverwrite
  544.      ELSEIF OpProc% = 2 THEN
  545. '       i% = DoMsgBox(Group$+", "+AppTitle$+", "+DEST$ + AppDir$ + AppExeName$, "Icon Working Directory - HD", MB_OK+MB_TASKMODAL)
  546.         CreateProgmanItem Group$, AppTitle$, DEST$ + AppDir$ + AppExeName$, "", cmoOverwrite
  547. '       i% = DoMsgBox(Group$+", "+OtherAppsTitle$+", "+SrcDrive$ + AppDir$ + AppExeName$, "Others...", MB_OK+MB_TASKMODAL)
  548.         CreateProgmanItem Group$, OtherAppsTitle$, SrcDrive$ + AppDir$ + OtherAppsFile$, "", cmoOverwrite
  549. '       i% = DoMsgBox(Group$+", "+OtherAppsTitle$+", "+SrcDrive$ + AppDir$ + AppExeName$, "Others...", MB_OK+MB_TASKMODAL)
  550.         CreateProgmanItem Group$, OtherAppsTitle$, SrcDrive$ + AppDir$ + OtherAppsFile$, "", cmoOverwrite
  551.     END IF
  552.  
  553. END SUB
  554.  
  555.  
  556. '**
  557. '** Purpose:
  558. '**     Check for the existance of MSOffice and add program to the Toolbar.
  559. '****************************************************************************
  560. SUB MSOffice STATIC
  561.  
  562.     Filename$ = WinDir$ + "MSOFFICE.INI"
  563.  
  564.     ''Check for INI
  565.     e% = DoesFileExist(Filename$,0)
  566.     if e% = 1 then
  567. '        i% = DoMsgBox("Specified file exists!",Filename$,MB_TASKMODAL+MB_OK)
  568.         WriteToLogFile "MS Office was found and updated."
  569.         WriteToLogFile ""
  570.         for x = 1 to 9
  571.             UA$ = GetIniKeyString(Filename$, "ToolbarOrder", "UserApp"+MID$(STR$(x),2,1))
  572. '            i% = DoMsgBox("UserApp" + STR$(x) + "= " + UA$,"UserApp Strings",MB_TASKMODAL+MB_OK)
  573.             if MID$(UA$,1,17)<>AppTitle$ then
  574.                 if UA$="" then
  575. '                    i% = DoMsgBox("Next available UserApp is" + STR$(x),"UserApp",MB_TASKMODAL+MB_OK)
  576.                     CreateIniKeyValue Filename$, "ToolbarOrder", "UserApp"+MID$(STR$(x),2,1), AppTitle$+","+SrcDrive$+AppDir$+AppExeName$+","+SrcDrive$+AppDir$+",1", cmoNone
  577.                     CreateIniKeyValue Filename$, "BitmapInfo", "UserApp"+MID$(STR$(x),2,1), MSOBitmap$, cmoNone
  578.                     CreateIniKeyValue Filename$, "MenuOrder", "UserApp"+MID$(STR$(x),2,1), AppTitle$+","+SrcDrive$+AppDir$+AppExeName$+","+SrcDrive$+AppDir$+",1", cmoNone
  579.                     exit for
  580.                 end if
  581.              else
  582.                 RemoveIniKey Filename$, "ToolbarOrder", "UserApp"+MID$(STR$(x),2,1), cmoNone
  583.                 RemoveIniKey Filename$, "MenuOrder", "UserApp"+MID$(STR$(x),2,1), cmoNone
  584.                 RemoveIniKey Filename$, "BitmapInfo", "UserApp"+MID$(STR$(x),2,1), cmoNone
  585.                 CreateIniKeyValue Filename$, "ToolbarOrder", "UserApp"+MID$(STR$(x),2,1), AppTitle$+","+SrcDrive$+AppDir$+AppExeName$+","+SrcDrive$+AppDir$+",1", cmoNone
  586.                 CreateIniKeyValue Filename$, "BitmapInfo", "UserApp"+MID$(STR$(x),2,1), MSOBitmap$, cmoNone
  587.                 CreateIniKeyValue Filename$, "MenuOrder", "UserApp"+MID$(STR$(x),2,1), AppTitle$+","+SrcDrive$+AppDir$+AppExeName$+","+SrcDrive$+AppDir$+",1", cmoNone
  588.                 exit for
  589.             end if
  590.         next
  591.       else
  592. '        i% = DoMsgBox("Specified file does NOT exist!",Filename$,MB_TASKMODAL+MB_OK)
  593.         WriteToLogFile "MS Office was not found."
  594.         WriteToLogFile ""
  595.     end if
  596.  
  597. END SUB
  598.  
  599. '**
  600. '** Purpose:
  601. '**
  602. '****************************************************************************
  603. SUB ChkDrive STATIC
  604.  
  605.     cd% = IsDriveNetwork(MID$(DEST$,1,1))
  606.     if cd% = 1 then
  607. '        i% = DoMsgBox("Specified drive IS a network drive!","ChkDrive",MB_TASKMODAL+MB_OK)
  608.         WriteToLogFile "Destination drive is a network drive."
  609.       else
  610. '        i% = DoMsgBox("Specified drive IS NOT a network drive!","ChkDrive",MB_TASKMODAL+MB_OK)
  611.         WriteToLogFile "Destination drive is not a network drive."
  612.     end if
  613.  
  614. END SUB
  615.  
  616. '**
  617. '** Purpose:
  618. '**     Determine space available and compare it to space needed.
  619. '****************************************************************************
  620. SUB ChkSpaceX STATIC
  621.  
  622.     TotalDiskSize& = GetTotalSpaceForDrive(DriveToChk$)
  623.     WriteToLogFile "Total space on " + DriveToChk$ + " drive was " + STR$(TotalDiskSize&)
  624. '    i% = DoMsgBox(STR$(TotalDiskSize&),WinDrive$,MB_TASKMODAL+MB_OK)
  625.     DiskSize& = GetFreeSpaceForDrive(DriveToChk$)
  626.     WriteToLogFile "Free space on " + DriveToChk$ + " drive was " + STR$(DiskSize&)
  627. '    i% = DoMsgBox(STR$(DiskSize&),WinDrive$,MB_TASKMODAL+MB_OK)
  628. '    i% = DoMsgBox(STR$(FullWantedDiskSize&),"FullWantedDiskSize",MB_TASKMODAL+MB_OK)
  629.  
  630. END SUB
  631.  
  632. '**
  633. '** Purpose:
  634. '**     Displays TOOBIG dialog. (VfW)
  635. '****************************************************************************
  636. VfWTooBig:
  637.     VfWFailed% = 1
  638.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FQuitDlgProc", 0, "")
  639.     IF sz$ = "EXIT" THEN
  640.         UIPopAll
  641.      ELSEIF sz$ = "REACTIVATE" THEN
  642.         GOTO VfWTooBig
  643.      ELSE
  644.         UIPopAll
  645.     END IF
  646.     i% = DoMsgBox(STR$(VfWSizeReq&) + " bytes more space is required on your Windows drive.", "Needed Windows drive space", MB_OK+MB_TASKMODAL)
  647.     WriteToLogFile "Free space on Windows drive was insufficient."
  648.     WriteToLogFile ""
  649.     ERROR STFPROBLEM
  650.   RETURN
  651.  
  652. '**
  653. '** Purpose:
  654. '**     Displays TOOBIG2 dialog. (Full install of program)
  655. '****************************************************************************
  656. FullTooBig:
  657.     sz$ = UIStartDlg(CUIDLL$, TOOBIG2, "FQuitDlgProc", 0, "")
  658.     IF sz$ = "EXIT" THEN
  659.         UIPopAll
  660.         ERROR STFPROBLEM
  661.      ELSEIF sz$ = "REACTIVATE" THEN
  662.         GOTO FullTooBig
  663.     END IF
  664.     UIPopAll
  665.     WriteToLogFile "Free space on " + CheckedDrive$ + " drive was insufficient."
  666.     WriteToLogFile ""
  667.   RETURN
  668.  
  669. '**
  670. '** Purpose:
  671. '**     Determine if Install has to update through DOS.
  672. '**      Restart Windows: if it has to update ACM from DOS, it restarts Windows automatically
  673. '**      else, it gives the user the choice
  674. '****************************************************************************
  675. RESTART:
  676.     RESTRT% = RestartListEmpty ()
  677.     Exe$ = DEST$ + "\_msrstrt.exe"
  678.     Batch$ = DEST$ + "\_mssetup.bat"
  679.     empty$ = ""
  680. RESTARTL1:
  681.     IF RESTRT% = 0 THEN
  682.         sz$ = UIStartDlg(CUIDLL$, RESTART, "FInfo0DlgProc", 0, "")
  683.         IF sz$ = "REACTIVATE" THEN
  684.             GOTO RESTARTL1
  685.         END IF
  686.         I% = ExitExecRestart ()
  687.         RemoveFile Exe$, cmoForce
  688.         RemoveFile Batch$, cmoForce
  689.         WriteToLogFile ""
  690.         WriteToLogFile "Restart for DOS finish."
  691.         WriteToLogFile ""
  692.         CloseLogFile
  693.        END
  694.      ELSE
  695.         sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  696.         IF sz$ = "CONTINUE" THEN
  697.             I% = ExitWindowsExec (Exe$, empty$)
  698.             IF I% = 0 THEN
  699.                 GOTO RESTARTL1
  700.              ELSE
  701.                 WriteToLogFile ""
  702.                 WriteToLogFile "Restart accepted."
  703.                 WriteToLogFile ""
  704.                 CloseLogFile
  705.                END
  706.             END IF
  707.          ELSEIF sz$ = "EXIT" THEN
  708.             UIPopAll
  709.             WriteToLogFile ""
  710.             WriteToLogFile "Restart declined."
  711.             WriteToLogFile ""
  712.             CloseLogFile
  713.            END
  714.          ELSEIF sz$ = "REACTIVATE" THEN
  715.             GOTO RESTARTL1
  716.          ELSE
  717.             UIPop 1
  718.         END IF
  719.     END IF
  720.   RETURN
  721.  
  722. '**
  723. '** Purpose:
  724. '**     Appends a file name to the end of a directory path,
  725. '**     inserting a backslash character as needed.
  726. '** Arguments:
  727. '**     szDir$  - full directory path (with optional ending "\")
  728. '**     szFile$ - filename to append to directory
  729. '** Returns:
  730. '**     Resulting fully qualified path name.
  731. '****************************************************************************
  732. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  733.     IF szDir$ = "" THEN
  734.         MakePath = szFile$
  735.      ELSEIF szFile$ = "" THEN
  736.         MakePath = szDir$
  737.      ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  738.         MakePath = szDir$ + szFile$
  739.      ELSE
  740.         MakePath = szDir$ + "\" + szFile$
  741.     END IF
  742.  
  743. END FUNCTION
  744.  
  745. '**
  746. '** Purpose:
  747. '**     Determine space available and compare it to space needed.
  748. '** Arguments:
  749. '**     szDir$  - full directory path (with optional ending "\")
  750. '**     szFile$ - filename to append to directory
  751. '** Returns:
  752. '**     Resulting fully qualified path name.
  753. '****************************************************************************
  754. FUNCTION ChkSpace(DriveToChk$, Size&) STATIC AS INTEGER
  755.  
  756.     TotalDiskSize& = GetTotalSpaceForDrive(DriveToChk$)
  757.     DiskSize& = GetFreeSpaceForDrive(DriveToChk$)
  758.  
  759. '    i% = DoMsgBox(STR$(Size&)+", "+STR$(DiskSize&),DriveToChk$,MB_TASKMODAL+MB_OK)
  760.  
  761.     IF DiskSize& < Size& THEN
  762.         ChkSpace = 1
  763.      ELSE
  764.         ChkSpace = 0
  765.     END IF
  766.  
  767. END FUNCTION
  768.  
  769. '**
  770. '** Purpose:
  771. '**     Determine space available and compare it to space needed.
  772. '** Arguments:
  773. '**     szDir$  - full directory path (with optional ending "\")
  774. '**     szFile$ - filename to append to directory
  775. '** Returns:
  776. '**     Resulting fully qualified path name.
  777. '****************************************************************************
  778. FUNCTION PlayWAV(AudFile$) STATIC AS INTEGER
  779.  
  780.     IF AudFile$ = "" THEN
  781.         aret% = sndPlaySound(NULL, 0)
  782.      ELSE
  783.         aret% = sndPlaySound(AudFile$, SND_ASYNC+SND_NODEFAULT)
  784.     ENDIF
  785.  
  786. '   i% = DoMsgBox(STR$(aret%), "WaveAudio return", MB_OK+MB_TASKMODAL)
  787.  
  788.     IF aret% <> 0 THEN
  789.         PlayWAV = 1
  790.      ELSE
  791.         PlayWAV = 0
  792.     END IF
  793.  
  794. END FUNCTION
  795.  
  796.  
  797. '**
  798. '** Purpose:
  799. '**     Subroutine to get command line and split into arguments.
  800. '**      NumArgs : Number of args found.
  801. '**      Args$() : Array in which to return arguments.
  802. '**      MaxArgs : Maximum number of arguments.
  803. '****************************************************************************
  804. CmdLine:
  805.  
  806.   MaxArgs% = 4
  807.   NOAUDIO% = 0
  808.   NumArgs% = 0
  809.   InIt% = 0
  810.   Cl$ = COMMAND$
  811.   L% = LEN(Cl$)
  812.  
  813.     FOR I% = 1 TO L%     '' Go through the command line a character at a time
  814.         C1$ = MID$(Cl$, I%, 1)
  815.         IF C1$ <> " " THEN     ''Test for a blank
  816.             '' Not a blank
  817.             IF InIt% = 0 THEN     '' Test already inside an argument
  818.                 '' start of a new argument
  819.                 IF NumArgs% = MaxArgs% THEN     '' Test for too many arguments
  820.                     EXIT FOR
  821.                 END IF
  822.                 NumArgs% = NumArgs% + 1
  823.                 InIt% = 1
  824.             END IF
  825.             '' Add character to current argument
  826.             Arg$(NumArgs%) = Arg$(NumArgs%) + UCASE$(C1$)
  827.          ELSE
  828.             '' Found a blank
  829.             InIt% = 0     '' Set 'Not in an argument' flag to 0
  830.         END IF
  831.     NEXT I
  832.     '' Reset COMMAND$ without extra arguments
  833.     COMMAND$ = Arg$(1) + " " + Arg$(2)
  834.  
  835. '    FOR Z% = 1 TO NumArgs%
  836. '       i% = DoMsgBox(COMMAND$ + ", " + Arg$(3), "COMMAND$", MB_OK+MB_TASKMODAL)
  837. '    NEXT
  838.  
  839.   RETURN
  840.  
  841.  
  842.